import java.util.*;

public class Test {

    public static void main1(String[] args) {
        ArrayList<Integer> list1=new ArrayList<>();

        //list.add(x)——>插入方法，默认在数组末尾有效元素后插入
        list1.add(0);

        list1.add(3);

        list1.add(7);

        System.out.println(list1);
        System.out.println("====================");
        ArrayList<Integer> list2=new ArrayList<>(list1);
        System.out.println(list2);

        ArrayList<Integer> list3=new ArrayList<>();
        list3.addAll(list1);
        System.out.println(list3);

        System.out.println("========================");

        list3.add(2,908);
        System.out.println(list3);


    }

    public static void main2(String[] args) {
        ArrayList<Integer> list1=new ArrayList<>();
        list1.add(1);

        list1.add(2);

        list1.add(3);
        list1.add(4);
        list1.add(5);


        System.out.println("删除前："+list1);

        //删除指定下标元素

        list1.remove(1);
        System.out.println("删除后："+list1);

        //删除对应位置元素
//        list1.remove(3);
//        System.out.println(list1);


        //list1.remove(new Integer(3));
        Integer ii=3;
        list1.remove(ii);

        System.out.println(list1);

    }

    public static void main3(String[] args) {

        Scanner cin=new Scanner(System.in);
        String s1=cin.next();
        cin.nextLine();

        String s2=cin.nextLine();

        System.out.println(s1);
        System.out.println(s2);
    }

    public static void main4(String[] args) {
        ArrayList<Integer> list1=new ArrayList<>();

        //list.add(x)——>插入方法，默认在数组末尾有效元素后插入
        list1.add(0);

        list1.add(3);

        list1.add(7);

        //get（index）——获取下标为index的元素

        System.out.println(list1.get(2));

        //set（index，num）

        list1.set(2,99999);
        System.out.println(list1);
    }

    public static void main5(String[] args) {
        ArrayList<Integer> list1=new ArrayList<>();

        //list.add(x)——>插入方法，默认在数组末尾有效元素后插入
        list1.add(0);

        list1.add(3);

        list1.add(7);
        list1.add(7);

//        System.out.println(list1.indexOf(7));
//        System.out.println(list1.lastIndexOf(7));

        List<Integer> ret=list1.subList(1,3);
        System.out.println(ret);

        ret.add(0,897);
        System.out.println(ret);
        System.out.println(list1);

    }

    public static void main(String[] args) {
        ArrayList<Integer> list1=new ArrayList<>();

        //list.add(x)——>插入方法，默认在数组末尾有效元素后插入
        list1.add(0);

        list1.add(3);

        list1.add(7);
        list1.add(7);

        //1.
//        int len=list1.size();
//        for(int i=0;i<len;i++){
//            System.out.print(list1.get(i)+" ");
//        }


        ///2.
//        for(int x:list1){
//            System.out.print(x+" ");
//        }

        //3.迭代器循环打印
        //迭代器1
//        Iterator<Integer> it=list1.iterator();
//
//        while(it.hasNext()){
//            System.out.print(it.next()+" ");
//        }
//        System.out.println();


        //迭代器2
        //1.从指定位置开始打印
        ListIterator<Integer> it2=list1.listIterator(2);
        while (it2.hasNext()){
            System.out.print(it2.next()+" ");

        }
        System.out.println();
        //2.逆序打印
        ListIterator<Integer> it3=list1.listIterator(list1.size());
        while (it2.hasPrevious()){
            System.out.print(it2.previous()+" ");

        }

    }
}
